package com.bjsxt.ego.goods.service;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bjsxt.ego.common.util.PageInfoUtil;
import com.bjsxt.ego.goods.pojo.Goods;
import com.bjsxt.ego.goods.pojo.GoodsBrand;
import com.bjsxt.ego.goods.pojo.GoodsCategory;

/**
 *  商品的service接口
 * @author 章鸿敏
 *
 */
public interface IGoodsService
{
	/***********商品品牌模块开始*************/
	/**
	 *  保存一条商品品牌
	 * @param goodsBrand 保存的对象
	 * @return json:{"code":"0","info":"成功","data"：{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsBrandService(GoodsBrand goodsBrand);
	
	/**
	 *  保存一条商品品牌
	 * @param goodsBrand 保存的对象
	 * @param paranmMap 上传文件所需要的条件
	 * @return json:{"code":"0","info":"成功","data"：{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsBrandService(GoodsBrand goodsBrand,Map<String, Object> paramsMap);
	
	/**
	 *  更新一条商品品牌
	 * @param goodsBrand 更新的对象
	 * @return
	 */
	JSONObject updateOneGoodsBrandService(GoodsBrand goodsBrand);
	
	/**
	 * 更新一条商品品牌
	 * @param goodsBrand 更新的对象
	 * @param condMap 上传文件所需要的条件
	 * @return
	 */
	JSONObject updateOneGoodsBrandService(GoodsBrand goodsBrand,Map<String, Object> paramsMap);
	
	/**
	 *  删除一条记录
	 * @param amdins
	 * @return
	 */
	JSONObject deleteOneGoodsBrandService(GoodsBrand goodsBrand);
	
	/**
	 *  查找一条商品品牌信息
	 * @param condMap
	 * @return
	 */
	GoodsBrand findOneGoodsBrandService(Map<String, Object> condMap);
	
	/**
	 *  查询多条商品品牌
	 * @param pageInfoUtil
	 * @param condMap
	 * @return
	 */
	List<GoodsBrand> findCondListGoodsBrandService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	/***********商品品牌模块结束*************/
	
	/***********商品分类模块开始*************/
	/**
	 *  保存一条商品分类
	 * @param goodsCategory 保存的对象
	 * @return json:{"code":"0","info":"成功","data"：{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsCategoryService(GoodsCategory goodsCategory);
	
	
	/**
	 *  更新一条商品分类
	 * @param goodsCategory 更新的对象
	 * @return
	 */
	JSONObject updateOneGoodsCategoryService(GoodsCategory goodsCategory);
	
	/**
	 *  删除一条记录
	 * @param amdins
	 * @return
	 */
	JSONObject deleteOneGoodsCategoryService(GoodsCategory goodsCategory);
	
	/**
	 *  查找一条商品分类信息
	 * @param condMap
	 * @return
	 */
	GoodsCategory findOneGoodsCategoryService(Map<String, Object> condMap);
	
	/**
	 *  查询多条商品分类
	 * @param pageInfoUtil
	 * @param condMap
	 * @return
	 */
	List<GoodsCategory> findCondListGoodsCategoryService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	
	/**
	 *  查询整棵树(树形菜单)
	 * @param goodsCategory 商品的分类
	 * @param rootPath   点击叶子节点跳转的路径
	 * @return
	 */
	JSONArray findTreeGoodsCategoryService(List<GoodsCategory> goodsCategory,String rootPath);
	/***********商品分类模块结束*************/
	
	/***********商品模块开始*************/
	/**
	 *  保存一条商品
	 * @param goods 保存的对象
	 * @return json:{"code":"0","info":"成功","data"：{"effect":"","id":""}}
	 */
	JSONObject saveOneGoodsService(Goods goods);
	
	/**
	 *  保存一条商品
	 * @param goods 保存的对象
	 * @param condMap 上传文件说需要的参数
	 * @return
	 */
	JSONObject saveOneGoodsService(Goods goods,Map<String, Object> paramsMap);
	
	/**
	 *  更新一条商品
	 * @param goods 更新的对象
	 * @return
	 */
	JSONObject updateOneGoodsService(Goods goods);
	
	/**
	 *  更新一条商品
	 * @param goods 更新的对象
	 * @param paramsMap 图片上传所需要的参数 
	 * @return
	 */
	JSONObject updateOneGoodsService(Goods goods,Map<String, Object> paramsMap);
	
	/**
	 *  删除一条记录
	 * @param amdins
	 * @return
	 */
	JSONObject deleteOneGoodsService(Goods goods);
	
	/**
	 *  查找一条商品信息
	 * @param condMap
	 * @return
	 */
	Goods findOneGoodsService(Map<String, Object> condMap);
	
	/**
	 *  查询多条商品
	 * @param pageInfoUtil
	 * @param condMap
	 * @return
	 */
	List<Goods> findCondListGoodsService(PageInfoUtil pageInfoUtil,Map<String, Object> condMap);
	
	
	/***********商品模块结束*************/
}

